package com.dh.blog.handler.xml;
/**
 * 目录接口
 * @author David
 *
 * @param <T>
 */
public interface Catalog<T extends CTNode> {
	/**
	 * 增加子结点
	 * @param t
	 */
	public void addNode(String index,T... t);
	/**
	 * 增加子结点(根目录)
	 */
	public void addNode(T... t);
	/**
	 * 删除目录结点
	 * @param index
	 * @return
	 */
	public int removeNode(String index);
	/**
	 * 修改目录结点
	 * @param index
	 * @return
	 */
	public int modifyNode(String index,T t);
	/**
	 * 查找目录结点
	 * @param index
	 */
	public T findNode(String index);
	/**
	 * 移动结点
	 * @param index
	 * @param level 目录级别
	 * @param offset 偏移量
	 * @return
	 */
	public int moveNode(String index,int level,int offset);
	/**
	 * 序列化成串
	 * @return
	 */
	public String serialize();
}
